package com.itcast.admin.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.itcast.admin.domain.SetmealCategory;
import com.itcast.admin.domain.request.CreateSetmealCategoryReqDTO;
import com.itcast.admin.domain.request.SetmealCategoryPagerReqDTO;
import com.itcast.admin.domain.response.SetmealCategoryListResDTO;
import com.itcast.admin.domain.response.SetmealCategoryPagerResDTO;
import com.jzo2o.common.model.PageResult;

import java.util.List;

/**
 * <p>
 * 套餐类型表 服务类
 * </p>
 *
 * @author author
 * @since 2024-11-05
 */
public interface ISetmealCategoryService extends IService<SetmealCategory> {

    /**
     * 分页查询套餐类型
     * @param setmealCategoryPagerReqDTO
     * @return
     */
    PageResult<SetmealCategoryPagerResDTO> pageQuery(SetmealCategoryPagerReqDTO setmealCategoryPagerReqDTO);

    /**
     * 新增套餐类型
     * @param createSetmealCategoryReqDTO
     */
    void createSetmealCateGory(CreateSetmealCategoryReqDTO createSetmealCategoryReqDTO);

    /**
     * 根据id获取套餐类型
     * @param id
     * @return
     */
    SetmealCategoryPagerResDTO getSetmealCateGoryById(Integer id);

    /**
     * 根据id修改套餐类型
     * @param id
     * @param createSetmealCategoryReqDTO
     */
    void updateSetmealCateGoryById(Integer id, CreateSetmealCategoryReqDTO createSetmealCategoryReqDTO);

    /**
     * 启用套餐类型
     * @param id
     */
    void enableSetmealCateGoryById(Integer id);

    /**
     * 校验套餐类型是否可以禁用
     * @param id
     */
    String checkDisableById(Integer id);

    /**
     * 根据id禁用套餐类型
     * @param id
     */
    void disableSetmealCateGoryById(Integer id);

    /**
     * 根据id删除套餐类型
     * @param id
     */
    void deleteSetmealCateGoryById(Integer id);


    /**
     * 获取套餐类型下拉列表
     * @param setmealCategoryStatus
     * @return
     */
    List<SetmealCategoryListResDTO> listForFilter(Integer setmealCategoryStatus);
}
